/*
 * @lc app=leetcode.cn id=237 lang=cpp
 *
 * [237] 删除链表中的节点
 */

// @lc code=start
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution
{
 public:
  void deleteNode(ListNode* node)
  {
    // 一般删除链表是需要知道上一个链表然后next指针指向删除链表的next
    // 本题给的是删除节点且不是尾端
    // 可以把下一个节点的值覆盖，然后跳过下一个节点
    node->val = node->next->val;
    node->next = node->next->next;

    // 用c++直接一句话
    // *(node) = *(node->next);
  }
};
// @lc code=end
